package com.gxa.jjty.core.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
@Table(name = "torder")
public class Torder implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @ApiModelProperty(hidden = true, value = "ID")
    private Long orderId;
    @ApiModelProperty(hidden = true, value = "订单编号")
    private String orderNumber;
    @ApiModelProperty(value = "残疾人id")
    private Long cjrId;
    @ApiModelProperty(hidden = true, value = "订单时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderTime;
    @ApiModelProperty(value = "姓名")
    private String orderUser;
    @ApiModelProperty(value = "电话")
    private String orderPhone;
    @ApiModelProperty(value = "服务地址")
    private String orderAddress;
    @ApiModelProperty(value = "服务类型")
    private String serveType;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "预约时间")
    private Date bookTime;
    @ApiModelProperty(hidden = true, value = "服务开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date serveTime;
    @ApiModelProperty(value = "订单价格")
    private Double orderPrice;
    @ApiModelProperty(hidden = true, value = "支付方式")
    private String payType;
    @ApiModelProperty(hidden = true, value = "实际支付")
    private Double payPrice;
    @ApiModelProperty(hidden = true, value = "陪护员名字")
    private String phyName;
    @ApiModelProperty(hidden = true, value = "陪护员id")
    private Long phyId;
    //数据库中不存这个字段的值,需要查陪护员表,然后赋值进去的
    @ApiModelProperty(hidden = true, value = "陪护员电话")
    private transient String phyPhone;
    @ApiModelProperty(hidden = true, value = "订单状态")
    private String orderState;
    @ApiModelProperty(value = "订单备注")
    private String orderRemark;
    @ApiModelProperty(hidden = true, value = "转单时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date transferTime;
    @ApiModelProperty(hidden = true, value = "转单备注")
    private String transgerRemark;
    @ApiModelProperty(hidden = true, value = "取消时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cancelTime;
    @ApiModelProperty(hidden = true, value = "取消原因")
    private String cancelRemark;
    @ApiModelProperty(hidden = true, value = "取消来源")
    private Integer cancelFrom;
    @ApiModelProperty(hidden = true, value = "接单时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date acceptTime;
    @ApiModelProperty(hidden = true, value = "服务完成时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date servfinishTime;
    @ApiModelProperty(hidden = true, value = "被转单时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date passtransgerTime;
    @ApiModelProperty(hidden = true, value = "支付时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    @ApiModelProperty(hidden = true, value = "收转人id")
    private String transferPhyId;

  @ApiModelProperty(hidden = true,value = "流水号")
  private String serialNumber;
  @ApiModelProperty(value = "订单退款处理状态")
  @Column(name = "refund_state")
  private String refundState;
  @ApiModelProperty(value = "两者之间的距离")
  private String distance;
  @ApiModelProperty(hidden = true)
  @Column(name = "refund_order")
  private String refundOrder;

  //操作记录的List
  private transient List<OrderoRecord> recordList;

    /**
     * 是否评价(-1: 未评价, 1: 残疾人评价, 2: 陪护员待评价, 3: 系统自动好评)
     */
    private Integer flag;

}

